#pragma once
#include "GSE_DataSet.h"
#include "GSE_SqlConnection.h"

enum BACKEND_TYPE
{
	MYSQL_DB        = 0,
	POSTGRESQL_DB   = 1
};

namespace GSE
{
	class ISqlConnection;
	class GSE_DLL_API GSE_NOVTABLE ISql
	{
	public:
		static ISql * CreateModule();
		static void   DestroyModule();
		static ISql * InstancePtr();

		virtual ISqlConnection * CreateConnection(BACKEND_TYPE) = 0;
		virtual void DestroyConnection(ISqlConnection * )	= 0;
		virtual uint Run() = 0;

		GSE_INTERFACE_NONCOPY(ISql);
	};
}